home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / d / magicstr.d < prev    next >
Text File  |  1997-10-26  |  4KB  |  92 lines

  1. (*----------------------------------------------------------------------*
  2.  *                                                                      *
  3.  *         MAGIC   Modula's  All purpose  GEM  Interface  Cadre         *
  4.  *                 ÿ         ÿ            ÿ    ÿ          ÿ             *
  5.  *----------------------------------------------------------------------*
  6.  * Version 3.30  02.02.1992     (C)90/91/92 by Peter Hellinger Software *
  7.  *----------------------------------------------------------------------*
  8.  *            Dieses Modul ist urheberrechtlich geschtzt.              *
  9.  *                                                                      *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus in schrift-  *
  11.  * licher Form, insbesondere in Zeitschriften, sowie die Verbreitung    *
  12.  * ber Public-Domain-H„ndler bedarf der ausdrcklichen schriftlichen   *
  13.  * Genehmigung des Autors!                                              *
  14.  *                                                                      *
  15.  * Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
  16.  * zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins-  *
  17.  * besondere dieser Urheberrechts-Vermerk nicht ver„ndert wird, und     *
  18.  * durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor    *
  19.  * beh„lt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
  20.  * von Grnden zu widerrufen.                                           *
  21.  *----------------------------------------------------------------------*)
  22.  
  23. (*----------------------------------------------------------------------* 
  24.  * MagicStrings         Stringverarbeitung                              *
  25.  *----------------------------------------------------------------------*)
  26.  
  27. DEFINITION MODULE MagicStrings;
  28.  
  29. FROM MagicSys   IMPORT  Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
  30.                         Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
  31.                         Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  32.                         sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
  33.  
  34.  
  35.  
  36.  
  37.  
  38. TYPE    STRING = ARRAY [0..255] OF CHAR;
  39.  
  40.  
  41. PROCEDURE Length  (REF  str: ARRAY OF CHAR): sCARDINAL;
  42. (* L„nge eines Strings *)
  43.  
  44. PROCEDURE Pos (REF  substr, str: ARRAY OF CHAR;
  45.                start: sCARDINAL; dowild: BOOLEAN): sCARDINAL; 
  46. (* Position von substr in str. Wenn nicht gefunden retouniert die 
  47.  * Prozedur SIZE (str) + 1!!!  Im Zuge der Umbauarbeiten der Prozedur
  48.  * wurde das Feature eingebaut, daž in substr auch WILDCARDS und JOKER
  49.  * enthalten sein k”nnen.  Als Joker wurde '?' und als Wildcard '*'
  50.  * vereinbart.  Nur wenn dowild als TRUE bergeben wird!!!
  51.  * In "Hallo, hier bin ich" (str) kann man nun auch folgendes finden:
  52.  * p:= Pos ('hier', str, 0, TRUE);  (* p =  7 *) 
  53.  * p:= Pos ('*i*i', str, 0, TRUE);  (* p =  0 *)
  54.  * p:= Pos ('?i? ', str, 0, TRUE);  (* p =  8 *)
  55.  *)
  56.  
  57. PROCEDURE Insert (REF  substr: ARRAY OF CHAR; VAR str: ARRAY OF CHAR; index: sCARDINAL); 
  58. (* Fgt substr in str ab index ein *)
  59.  
  60. PROCEDURE Delete  (VAR str: ARRAY OF CHAR; index, len: sCARDINAL);
  61. (* L”scht len Zeichen ab index aus str *)
  62.  
  63. PROCEDURE Append  (REF  substr: ARRAY OF CHAR; VAR str: ARRAY OF CHAR); 
  64. (* H„ngt substr an str an *)
  65.  
  66. PROCEDURE Copy (REF  str: ARRAY OF CHAR; index, len: sCARDINAL; 
  67.                 VAR result: ARRAY OF CHAR);
  68. (* Kopiert len Zeichen ab index von str nach result *)
  69.  
  70. PROCEDURE CAPS    (VAR str: ARRAY OF CHAR);
  71. (* Wandelt alle Zeichen in str in Grožbuchstaben.
  72.  * Dazu wird MagicStrings.Cap verwendet, welches auch Sonderzeichen wie 
  73.  * „” wandelt.
  74.  *)
  75.  
  76. PROCEDURE Equal (REF  s1, s2: ARRAY OF CHAR): BOOLEAN; 
  77. (* TRUE, wenn s1 = s2 *)
  78.  
  79. TYPE    Relation =      (less, equal, greater);
  80.  
  81. PROCEDURE Compare (REF  s1, s2: ARRAY OF CHAR): Relation; 
  82. (* Vergleicht s1 mit s2 *)
  83.  
  84. PROCEDURE Assign  (REF  quelle: ARRAY OF CHAR; VAR ziel: ARRAY OF CHAR); 
  85. (* Weižt den Inhalt von quelle ziel zu (ziel:= quelle) *)
  86.  
  87. PROCEDURE Cap     (ch: CHAR): CHAR;
  88. (* Wie CAP, wandelt auch Umlaute und Sonderzeichen *)
  89.  
  90. END MagicStrings.
  91.  
  92.